package com.lh0811.forge.dependency.security.core.model.properties;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;


@ConfigurationProperties(prefix = "security.boot")
public class SecurityBootProperties {

    @Getter
    @Setter
    // 请求Header中token的key
    private String tokenKey = "Authorization";

    @Getter
    @Setter
    // token 过期时间 单位是分钟
    private String expire = "360";

    @Getter
    @Setter
    // 当前token失效或未上传token返回码
    private String noAuthorizedCode = "401";

    @Getter
    @Setter
    // 无权限访问返回码
    private String unAuthorizedCode = "403";

    /**
     * 已弃用。
     * <p>
     * 标注当前应用是否使用springcloud框架。
     * 如果为true。
     * 当客户端需要鉴权时，会通过配置文件serverName服务名，来随机获取一个鉴权中心示例的ip+port。并发起http请求，去获取用户权限信息。
     * 并判断用户是否有权限访问资源或方法
     * 如果为false
     * 则会在当前spring容器上下文获取到SecurityCheckAuthority示例来判断用户是否有权限。
     */
    @Deprecated
    @Getter
    @Setter
    private Boolean useCloud = false;

    /**
     * 允许用户同事登录的客户端数量
     */
    @Getter
    @Setter
    private Integer allowUserClientNum = 1;

    /**
     * 允许用户在一个客户端可以同时保留有效token的数量
     */
    @Getter
    @Setter
    private Integer allowUserClientTokenNum = 1;

}
